﻿using System;
using ApplicationGenerator.BusinessModule.Interfaces;

namespace ApplicationGenerator.BusinessModule.MetaElements
{
    /// <summary>
    /// Zawiera definicję metamodelu
    /// </summary>
    [Serializable]
    internal class MetaModel : IMetaModel
    {
        /// <summary>
        /// Nazwa metamodelu
        /// </summary>
        public string ModelName { get; internal set; }

        /// <summary>
        /// Nazwa klucza głównego w metamodelu
        /// </summary>
        public string PrimaryKeyName { get; internal set; }

        /// <summary>
        /// Typ metamodelu
        /// </summary>
        public Type ModelType { get; internal set; }

        /// <summary>
        /// Kolekcja właściwości metamodelu
        /// </summary>
        public IMetaFieldCollection MetaFieldCollection { get; private set; }

        public MetaModel()
        {
            MetaFieldCollection = new MetaFieldCollection();
        }
    }
}
